# -*- coding: utf-8 -*-
# @Author: QX
# @File: day8_0084m3c.py
'''
如何完成放大
1、使用 add_point_input 添加手指，放大需要用到两个手指。
2、使用 create_pointer_move 移动到屏幕的正中间
3、使用 create_pointer_down 按下手指
4、使用 create_pointer_move 往屏幕相反方向移动
5、使用 create_pointer_up 松开手指

'''
from time import sleep

from appium import webdriver

from selenium.webdriver.common.actions.mouse_button import MouseButton

from selenium.webdriver.common.action_chains import  ActionChains


desired_caps = {
    'platformName': 'Android',  # 根据实际情况填写平台名称
    'platformVersion': '12',  # 填写设备的操作系统版本
    'deviceName': 'ba08213e',  # 填写设备名称
    'appPackage': 'com.autonavi.minimap',  # 填写要操作的地图应用包名
    'appActivity': 'com.autonavi.map.activity.NewMapActivity',  # 填写地图应用的启动Activity
    'automationName': 'uiautomator2',
    'noReset': True  # 根据需要设置是否重置应用状态
}

driver = webdriver.Remote('http://127.0.0.1:4723', desired_caps)  # 连接到 Appium 服务器
driver.activate_app('com.autonavi.minimap')
driver.implicitly_wait(30)  # 设置隐式等待时间
#接下来循环3次
for i in range(3):
    #生成一个动作链对象，，
    actions=ActionChains(driver)
    #准备一个空设备列表
    actions.w3c_actions.devices=[]
    #为动作链添加一个触摸类型的指针，名称为finger1,finger2
    finger1=actions.w3c_actions.add_pointer_input('touch','finger1')
    finger2=actions.w3c_actions.add_pointer_input('touch','finger2')
    #获得设备的宽和高
    width=driver.get_window_size()['width']
    height=driver.get_window_size()['height']
    #把finger1和finger2放到屏幕的中心位置
    finger1.create_pointer_move(x=width*0.5,y=height*0.5)
    finger2.create_pointer_move(x=width*0.5,y=height*0.5)

    #按下鼠标的左键
    finger1.create_pointer_down(x=MouseButton.LEFT)
    finger2.create_pointer_down(x=MouseButton.LEFT)

    # 把finger1和finger2移到屏幕的90%和10%
    finger1.create_pointer_move(x=width*0.5,y=height*0.9)
    finger2.create_pointer_move(x=width*0.5,y=height*0.1)

    #释放两个指头
    finger1.create_pointer_up(MouseButton.LEFT)
    finger2.create_pointer_up(MouseButton.LEFT)

    actions.perform()
    sleep(2)